The present invention relates to information handling systems (IHSs) that include packet switches. A packet switch can be a network router or other device that receives and forwards data in computer networks based on forwarding databases and possibly based on other information stored on the packet switch. Some embodiments of the invention are useful for managing the forwarding databases and such other information.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option is an IHS. An IHS generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes. Because technology and information handling needs and requirements may vary between different applications, IHSs may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in IHSs allow for IHSs to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. IHSs may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems, such as a packet switch.
FIG. 1 illustrates an exemplary IP network 104 with routers 110 (i.e. 110.0 through 110.4) and end stations 114, all interconnected by links 120. FIG. 2 is a block diagram of an exemplary router 110. The router includes line cards LCx (LC1 through LCn). Only line card LC1 is shown in detail. The line cards can be identical. Each line card LCx includes a number of ports Px (eight ports in FIG. 1, which are shown as P0 through P7 in line card LC1, and P8 through P15 in line card LC2). Links 120 are connected to these ports. Different line cards may contain different types of ports, e.g. optical, electrical, and others, and different line cards may handle different protocols in the same router. If a packet received on one line card LCx must be transmitted on a port of another line card, the packet is transferred to the other line card by switch fabric 220.
Line cards LCx and switch fabric 220 form the data plane of router 110. The control plane is provided by route processing managers RPM0, RPM1. Each RPM is connected to all the line cards and the switch fabric. Each RPM may have one or more computer processors 224 executing computer instructions 226 stored in memory 228. The RPMs perform managing functions for the switch. For example, the RPMs perform network discovery and provide forwarding databases to the line cards, respond to management requests received over the network or from the switch's own user interface devices (not shown), and perform other management functions. The computer instructions 226 include suitable applications, e.g. IPC 232 (Inter Process Communication) for message exchange between the two RPMs, or between an RPM and a line card LCx or switch fabric 220; and a routing application 234 (e.g. OSPF). Other applications may also be present.
Each incoming packet is processed based on the packet fields. FIG. 3 shows some fields of an exemplary layer-2 packet 310. The packet includes a layer-2 header 314H and layer-2 payload 314P. Assuming for example that the packet arrived at router 110.0 from an end station 114.1, the packet's layer-2 source address 314S may specify the layer-2 address of station 114.1. If the packet destination is station 114.3 for example, then the layer-2 destination address will be the layer-2 address of station 114.3. If the packet destination is another router 110 or a station 114 connected to another router (e.g. station 114.5), the layer-2 destination address will be the layer-2 address of a port Px of router 110.0.
The remaining fields shown are part of the layer-2 payload 314P, which is an IP packet in this example. The IP packet 314P includes IP header 320H which includes a protocol number field 320L indicating the layer 4 protocol, e.g. UDP, TCP, ICMP, etc. The IP header 320H also includes source and destination IP addresses 320S and 320D. If the packet was originated by station 114.1 as in the example above, the source IP address 320S will be the IP address of station 114.1. The IP destination address 320D is the IP address of the packet's final destination, e.g. station 114.3 or 114.5 or a router 110 in the examples above.
In addition to the IP header, IP packet 314P includes IP payload 320P formed according to the protocol number 320L. In this example, the IP payload is a TCP or UDP packet, which includes a header 330H with source and destination ports 330S and 330D. The IP payload also includes layer-4 payload 330P.
Each line card LCx uses its packet processor 236 and memory 240 to determine the port or ports Px on which the packet must be forwarded. Packet processor 236 can be a computer processor which executes instructions stored in memory 240. In addition to the instructions, the memory 240 stores the incoming packets (not shown), and also stores databases 250 used in packet processing. The databases are also stored in each RPM. The RPM versions are shown as 250R0 for RPM0 and 250R1 for RPM1. The line card versions are shown as 250LC. The line card versions can differ from each other and from one or both of the RPM versions due to possible delays in updating each version.
The memory may include different kinds of memory, e.g. CAM (context addressable memory) for some databases, and may include other kinds of memory for packet queues and computer instructions.
Exemplary databases 250 include a layer-2 forwarding table 250.1 (“MAC Table”) shown respectively as 250.1LC, 250R.1R0, and 250.1R1 for the line cards and the RPMs. The same suffixes—LC, R0, R1—will be used for the other databases. The databases 250 include also a layer-3 forwarding table 250.2 (routing table, or RIB (Routing Information Base), or its derivative FIB (Forwarding Information Base)), and an ACL 250.3 (Access Control List).
The following table 1 illustrates an exemplary layer-2 forwarding database 250.1 (sometimes called “MAC table” for Media Access Control):
TABLE 1Layer-2 (MAC) lookup table 250.1:Layer-2 destination addressEgress PortsOther Info1267210349824689P15, P643458981578642903P17
The first column contains layer-2 addresses (MAC addresses), and the second column shows egress ports Px for each layer-2 address. If layer-2 destination address 314D of the incoming packet is found in the first column, the packet is forwarded on the port or ports shown in the second column. The second column may alternatively indicate that the packet is to be forwarded based on its layer-3 destination address 320D.
The third column may contain additional information.
The following Table 2 illustrates an exemplary layer-3 forwarding database 250.2 (RIB or FIB):
TABLE 2Routing or Forwarding Information Base 250.2:Destination IP Address prefixEgress PortsOther Info128.16.0.0/15P1, P2, P25 . . .128.18.0.0/15P1, P2, . . .128.15.1.2/31P17
For each entry, the first column includes an IP address and a mask; the mask is the significant number of the most significant bits in the IP address (e.g. 15 bits in the first two entries in the example above, 31 bits in the last entry). This table is searched for the entry with the longest matching prefix, i.e. with the prefix which has the largest number of most significant bits matching the incoming packet's IP destination address 320D. The packet is then forwarded on one or more of the egress ports specified in the second column.
In ACL database 250.3, each entry specifies IP source and/or destination addresses 320S, 320D, and whether a packet with such addresses is permitted or denied forwarding.
Database management involves making changes to databases 250 in response to management messages (possibly in the form of management packets 310 received over the network, or management messages entered from a user interface device (not shown) on router 110). The database changes may result from learning algorithms. For example, each line card LCx learns the association between its ports Px and layer-2 addresses from the incoming traffic: if the line card receives a packet on a port Px, the line card associates the packet's layer-2 source address 314D with the port Px, and enters this association into the line card's MAC Table 250.1LC. The line card also informs an RPM, and the RPMs inform the other line cards. Also, the RPMs run routing algorithms (e.g. OSPF (Open Shortest Path First), OSPF Incremental SPF, and/or BGP (Border Gateway Protocol), or others) to learn network topology and construct routing tables such as 250.2R0, 250.2R1. This information is then distributed to the line cards. Each line card's database 250.2LC can be identical to the routing tables 250.2R0, 250.2R1, or can be derived from the routing tables (to delete redundant routing paths for example).
In a redundant architecture, one RPM is primary, and the other RPM is secondary. The switch is managed by the primary RPM until the primary RPM fails. The primary RPM's failure may be detected by a line card or the secondary RPM for example. The switch management is then transferred to the secondary RPM in a failover operation. When the switch is managed by the primary RPM, the primary RPM provides copies of its databases 250, and of all the changes to the databases, to the secondary RPM, to avoid the need for database copying during failover. See e.g. U.S. Pat. No. 7,974,315 issued Jul. 5, 2011 to Yan et al., incorporated herein by reference.
Databases 250 may be large, and it is desirable to reduce the amount of communication between the RPMs and between an RPM and the line cards in database management.